1. Field of the Invention
The present invention is directed to technology for enabling an application, or other entity, to operate online and offline.
2. Description of the Related Art
The Internet has become very popular. Many people and businesses use the Internet to access data, applications, entertainment, productivity tools, and so on. One result of the popularity of the Internet is the rise in the use of network distributed applications. A network distributed application is a software application that runs on one or more servers and is delivered via a network to client devices as a “thin-client” application, which is actually “content” that runs within an application such as a Web browser. The network distributed application is typically not delivered to be a stand-alone installed desktop application.
Since network distributed applications, such as Web sites, are only accessible when network connectivity is available, applications that require off-line access are ordinarily developed and delivered as desktop applications. A desktop application, as opposed to a network distributed application, is installed on a device's hard disk (or other storage device) and can be programmed to run with or without network connectivity. Such applications are developed using completely different techniques and standards than server-based, network distributed applications.
Take, for example, the case of Microsoft Outlook®, a popular email application. In its standard version, it is implemented as a desktop application which is intermittently connected to a server. As a desktop application, it has its own application logic and maintains its own local database, separate from the server-resident database, and can work while connected to the network or not. This offers its users the convenience of accessing data such as email messages and contact information when off-line.
However, there are features offered by network distributed applications which are not available with desktop applications. A network distributed application can be used on any computer with a web browser and an Internet connection—and no desktop software need be installed in order to use it. The access-anywhere, zero-install features of network distributed applications may have driven Microsoft to offer its Outlook customers an alternative version of the application, called Outlook Web Access, which is a network distributed version of Outlook that allows an email server to be accessed like a web site.
These two versions of Outlook share many features and look very similar, but are implemented as two separate applications, with markedly different program structure and logic. There are no systems or tools which allow an application to be developed once, with a single code base, and delivered as both a desktop application (which can run on-line and off-line), and as a network distributed application. Currently, developers wishing to create an application that can work in both ways have no choice but to write custom code for each situation, with custom code for managing data synchronization issues between local and remote databases.